Stream Sockets (TCP)

Computer Programming - ইউনিক্স সকেট (Unix Socket) - Socket Types এবং এর প্রকারভেদ (Types of Sockets)
389

Stream Sockets হলো Unix এবং Unix-ভিত্তিক সিস্টেমে সবচেয়ে সাধারণ এবং বহুল ব্যবহৃত সোকেট টাইপ। এটি TCP (Transmission Control Protocol) প্রোটোকলের ওপর ভিত্তি করে কাজ করে, যা একটি নির্ভরযোগ্য, অর্ডার মেইনটেনিং, এবং কানেকশন-অরিয়েন্টেড যোগাযোগ ব্যবস্থা প্রদান করে। Stream Sockets মূলত ক্লায়েন্ট-সার্ভার ভিত্তিক অ্যাপ্লিকেশন এবং নেটওয়ার্ক পরিষেবা ডেভেলপ করার জন্য ব্যবহৃত হয়, যেমন ওয়েব সার্ভার, ডাটাবেস সার্ভার, এবং ইমেইল সার্ভার।

Stream Sockets (TCP)-এর বৈশিষ্ট্য

কানেকশন-অরিয়েন্টেড:

  • Stream Sockets একটি নির্ভরযোগ্য কানেকশন স্থাপন করতে সক্ষম। এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি টু-ওয়ে (দুই দিকের) যোগাযোগ নিশ্চিত করে।
  • TCP কানেকশন স্থাপনের সময় "থ্রি-ওয়ে হ্যান্ডশেক" (Three-Way Handshake) পদ্ধতি ব্যবহার করা হয়, যা নিরাপদ এবং স্থিতিশীল সংযোগ নিশ্চিত করে।

রিলায়েবল এবং অর্ডারড ডেটা ট্রান্সমিশন:

  • TCP প্রোটোকল ব্যবহার করার কারণে Stream Sockets ডেটা প্যাকেটের সঠিক অর্ডারে ডেলিভারি নিশ্চিত করে। এটি নিশ্চিত করে যে ডেটা সম্পূর্ণ এবং সঠিকভাবে পৌঁছেছে।
  • প্যাকেট হারানোর ঘটনা ঘটলে, Stream Sockets সেই প্যাকেট পুনরায় পাঠানোর চেষ্টা করে, যা ডেটার ইন্টিগ্রিটি বজায় রাখে।

স্ট্রিম ভিত্তিক ডেটা ট্রান্সফার:

  • Stream Sockets একটি ধারাবাহিক ডেটা স্ট্রিম পাঠায়, যা ফাইল ট্রান্সফার, HTTP রিকুয়েস্ট, বা ইমেইল আদান-প্রদানের মতো ক্ষেত্রে কার্যকর। এটি ডেটাকে প্যাকেট আকারে না পাঠিয়ে ধারাবাহিকভাবে একটি স্ট্রিম আকারে পাঠায়।

দুই-দিকের যোগাযোগ (Full Duplex):

  • Stream Sockets দুই দিকেই ডেটা পাঠাতে এবং গ্রহণ করতে পারে। এটি ক্লায়েন্ট এবং সার্ভার উভয়কে ডেটা পাঠানো ও ডেটা গ্রহণ করার সুযোগ দেয়, যা রিয়েল-টাইম কমিউনিকেশন এবং নেটওয়ার্ক অ্যাপ্লিকেশনের জন্য উপযোগী।

Stream Sockets-এর ব্যবহার

Stream Sockets মূলত বিভিন্ন ক্লায়েন্ট-সার্ভার ভিত্তিক অ্যাপ্লিকেশন এবং নেটওয়ার্ক পরিষেবা ডেভেলপ করতে ব্যবহৃত হয়। এটি TCP প্রোটোকলের মাধ্যমে ডেটা ট্রান্সফার করে, যা বিভিন্ন অ্যাপ্লিকেশনে নিরাপদ এবং নির্ভরযোগ্য যোগাযোগ নিশ্চিত করে।

Stream Sockets-এর সাধারণ ব্যবহারক্ষেত্র:

  1. ওয়েব সার্ভার (HTTP/HTTPS):
    • Web Servers (যেমন Apache, Nginx) ক্লায়েন্টদের HTTP বা HTTPS রিকুয়েস্ট গ্রহণ করতে Stream Sockets ব্যবহার করে এবং রেসপন্স পাঠায়।
  2. ডাটাবেস সার্ভার:
    • MySQL, PostgreSQL-এর মতো ডাটাবেস সার্ভারগুলো ক্লায়েন্ট অ্যাপ্লিকেশনগুলোর সাথে সংযোগ স্থাপন করতে Stream Sockets ব্যবহার করে।
  3. ইমেইল সার্ভার (SMTP/IMAP/POP3):
    • ইমেইল সার্ভারগুলো Stream Sockets-এর মাধ্যমে ক্লায়েন্ট এবং অন্যান্য সার্ভারের সাথে ইমেইল আদান-প্রদান করে।
  4. ফাইল ট্রান্সফার অ্যাপ্লিকেশন (FTP):
    • FTP সার্ভার এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলো ফাইল ট্রান্সফারের জন্য Stream Sockets ব্যবহার করে।

Stream Sockets-এর কার্যপদ্ধতি

Stream Sockets TCP প্রোটোকল অনুসরণ করে কাজ করে। নিচে Stream Sockets ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে কানেকশন স্থাপনের একটি সাধারণ কার্যপদ্ধতি দেওয়া হলো:

Socket তৈরি: প্রথমে, সার্ভার একটি Socket তৈরি করে socket() ফাংশনের মাধ্যমে, যেখানে AF_INET বা AF_INET6 (IPv4 বা IPv6) এবং SOCK_STREAM (Stream Socket) প্যারামিটার হিসেবে ব্যবহার করা হয়।

Binding: এরপর, সার্ভার bind() ফাংশনের মাধ্যমে একটি নির্দিষ্ট IP Address এবং Port Number-এ Socket-কে সংযুক্ত করে।

Listening: সার্ভার listen() ফাংশনের মাধ্যমে ইনকামিং সংযোগের জন্য অপেক্ষা করে এবং এক বা একাধিক ক্লায়েন্টের সংযোগ গ্রহণের জন্য প্রস্তুত থাকে।

Accepting Connection: যখন কোনো ক্লায়েন্ট সংযোগ স্থাপন করতে চায়, তখন সার্ভার accept() ফাংশনের মাধ্যমে সেই সংযোগ গ্রহণ করে এবং একটি নতুন Socket তৈরি করে, যা ডেটা আদান-প্রদানের জন্য ব্যবহৃত হয়।

Data Transfer: কানেকশন স্থাপিত হলে, ক্লায়েন্ট এবং সার্ভার send() এবং recv() ফাংশনের মাধ্যমে ডেটা পাঠানো এবং গ্রহণ করতে পারে।

Closing the Connection: যোগাযোগ শেষ হলে, ক্লায়েন্ট এবং সার্ভার উভয়েই close() ফাংশনের মাধ্যমে Socket বন্ধ করে দেয়।

Stream Sockets-এর সুবিধা

  • নির্ভরযোগ্য এবং নিরাপদ যোগাযোগ: Stream Sockets নির্ভরযোগ্য ডেটা ডেলিভারি নিশ্চিত করে এবং TCP প্রোটোকলের সিকিউরিটি ফিচার ব্যবহার করে নিরাপত্তা প্রদান করে।
  • দুই-দিকের ডেটা ট্রান্সমিশন: এটি একই সময়ে ডেটা পাঠাতে এবং গ্রহণ করতে সক্ষম।
  • স্ট্রিম ভিত্তিক ট্রান্সফার: ধারাবাহিক ডেটা ট্রান্সফারের জন্য Stream Sockets আদর্শ, যা ফাইল ট্রান্সফার এবং HTTP রিকুয়েস্টের জন্য কার্যকর।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...